package study.web.service.jaxws.client;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import study.web.service.jaxws.impl.WeatherImpl;

/**  
* @Name: WeatherClient
* @Description: 使用service类完成调用webservice服务
* 好处：避免了使用wsimport工具生成的客户端代码带来的webservice服务的访问地址硬编码问题，推荐使用
* @Author: 李超
* @version 1.0
* @Create Date: 2017-01-07
*/
public class WeatherClient {
	
	public static void main(String[] args) throws MalformedURLException {
		//创建webservice服务的url：可以指定使用说明书的地址，也可以指定webservice的地址
//		URL url = new URL("http://127.0.0.1:12345/weather?wsdl") ;
		//为了监视webservice传输的内容，这里端口号改为tcp/ip monitor代理的端口11111
		URL url = new URL("http://127.0.0.1:11111/weather?wsdl") ;
		//创建webservice服务的限定名称
		//第一个参数namespaceURI：命名空间的地址
		//第二个参数localPart：命名空间下服务视图的名称
		QName qName = new QName("http://impl.jaxws.service.web.study/", "WeatherImplService") ;
		//1、创建服务视图对象
		Service service = Service.create(url, qName) ;
		//2、通过服务视图对象，得到portType对象
		WeatherImpl weatherImpl = service.getPort(WeatherImpl.class) ;
		//3、通过portType对象，调用服务方法
		String cityName = "北京" ;
		String result = weatherImpl.queryWeather(cityName) ;
		System.out.println("from server ... " + result);
	}

}
